package com.swdegao.iot.netty.utils;


/**
 * 对通信原始数据的校验类
 */
public class DataValida {

    /**
     * 校验数据帧头帧尾是否符合协议规范
     * @param data 通信原始数据
     * @return
     */
    public static boolean ValidateHead(Byte head){
        boolean state = false;
        if (Const.HEAD.equals(head)){
            return true;
        }
        return state;
    }
    
    /**
     * 校验数据帧头帧尾是否符合协议规范
     * @param data 通信原始数据
     * @return
     */
    public static boolean ValidateFeet(Byte[] tails){
        boolean state = false;
        Byte[] tailTemp = Const.TAIL;
        if (tailTemp[0].equals(tails[0]) && tailTemp[0].equals(tails[1])){
            return true;
        }
        return state;
    }
    
    /**
     * 求校验和的算法
     * @param b 需要求校验和的字节数组
     * @return 校验和
     */
    public static byte SumCheck(byte[] b, int len){
        int sum = 0;
        for(int i = 0; i < len; i++){
            sum = sum + b[i];
        }
        return (byte) (sum & 0xff);
    }
}
